package com.zjsru.dailytest;

/**
 * 加一
 *
 * 给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。
 * 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字
 *
 * 输入：digits = [1,2,3]
 * 输出：[1,2,4]
 * 解释：输入数组表示数字 123。
 *
 * 输入：digits = [1,2,9]
 * 输出：[1,3,0]
 *
 * */
public class plusOne {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        for (int i = len -1 ; i >= 0; --i) {
            //不是9就执行
                if(digits[i] != 9){
                    ++digits[i];
            //将9的位数都变为0
                    for (int j = i+1; j < len; ++j) {
                        digits[j] = 0;
                    }
                    return digits;
                }
            }
        //数组里都是9，需要扩大一位
        int[] ans = new int[len+1];
        ans[0] =1 ;
        return ans;
    }
    public static void main(String[] args){
        plusOne plusOne = new plusOne();
        int[] digits = new int[]{1,2,9};
        System.out.println(plusOne.plusOne(digits));
    }
}
